#pragma once

#include "PhysicObject.h"

class PhysicCollisionResolution{
private:
	void Integrate(PhysicRigidBody *a_RigidBody, float a_timePassed);
	void Response(PhysicRigidBody *a_RigidBody_1);
	void Penetration(PhysicRigidBody *a_RigidBody_1, PhysicRigidBody *a_RigidBody_2);
	void Penetration_Circle_Circle(PhysicRigidBody *a_RigidBody_1, PhysicRigidBody *a_RigidBody_2);
	void Penetration_Square_Square(PhysicRigidBody *a_RigidBody_1, PhysicRigidBody *a_RigidBody_2);
	void Penetration_Circle_Square(PhysicRigidBody *a_RigidBody_1, PhysicRigidBody *a_RigidBody_2);
	void Penetration_Square_Circle(PhysicRigidBody *a_RigidBody_1, PhysicRigidBody *a_RigidBody_2);
public:
	PhysicCollisionResolution();
	~PhysicCollisionResolution();

	void Update(PhysicRigidBody *a_RigidBody, float a_timePassed);
};